home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / util / gnu / xpdf-0.8-src.lha / xpdf-0.8-src / ltk / LTKTextIn.h < prev    next >
C/C++ Source or Header  |  1998-11-28  |  3KB  |  95 lines

  1. //========================================================================
  2. //
  3. // LTKTextIn.h
  4. //
  5. // Copyright 1996 Derek B. Noonburg
  6. //
  7. //========================================================================
  8.  
  9. #ifndef LTKTEXTIN_H
  10. #define LTKTEXTIN_H
  11.  
  12. #ifdef __GNUC__
  13. #pragma interface
  14. #endif
  15.  
  16. #include "gtypes.h"
  17. #include "GString.h"
  18. #include "LTKWidget.h"
  19.  
  20. //------------------------------------------------------------------------
  21. // LTKTextIn
  22. //------------------------------------------------------------------------
  23.  
  24. class LTKTextIn: public LTKWidget {
  25. public:
  26.  
  27.   //---------- constructor and destructor ----------
  28.  
  29.   LTKTextIn(char *name1, int widgetNum1, int minWidth1,
  30.         char *fontName1, LTKStringValCbk doneCbk1,
  31.         char *tabTarget1);
  32.  
  33.   virtual ~LTKTextIn();
  34.  
  35.   //---------- access ----------
  36.  
  37.   virtual long getEventMask();
  38.  
  39.   //---------- special access ----------
  40.  
  41.   GString *getText() { return text; }
  42.   void setText(char *s);
  43.  
  44.   //---------- layout ----------
  45.  
  46.   virtual void layout1();
  47.   virtual void layout3();
  48.  
  49.   //---------- drawing ----------
  50.  
  51.   virtual void redraw();
  52.  
  53.   //---------- callbacks and event handlers ----------
  54.  
  55.   virtual void buttonPress(int mx, int my, int button, GBool dblClick);
  56.   virtual void buttonRelease(int mx, int my, int button, GBool click);
  57.   virtual void mouseMove(int mx, int my, int btn);
  58.   virtual void activate(GBool on);
  59.   virtual void keyPress(KeySym key, Guint modifiers, char *s, int n);
  60.   virtual void clearSelection();
  61.   virtual void paste(GString *str);
  62.  
  63. protected:
  64.  
  65.   int xToCursor(int mx);
  66.   int cursorToX(int cur);
  67.   void xorCursor();
  68.   void moveCursor(int newCursor, int newSelectionEnd,
  69.           int visiblePos);
  70.   void redrawTail(int i);
  71.  
  72.   int minWidth;            // minimum width
  73.   GString *text;        // the current text
  74.   GBool active;            // set if widget has input focus
  75.   int firstChar;        // index of first displayed char
  76.   int cursor;            // cursor is before char #<cursor>
  77.   int selectionEnd;        // end of selection
  78.                 //   (<= cursor means no selection)
  79.   GBool dragging;        // set while button1 is pressed
  80.   int dragAnchor;        // position where drag started
  81.   int textHeight;        // height of text
  82.   int textBase;            // baseline offset
  83.  
  84.   LTKStringValCbk doneCbk;    // called when <Return> is pressed or
  85.                 //   widget is de-selected
  86.   char *tabTarget;        // name of widget to be activated when
  87.                 //   <Tab> or <Return> is pressed
  88.  
  89.   char *fontName;        // non-NULL if using a custom font
  90.   XFontStruct *fontStruct;    // font info
  91.   GC textGC;            // GC with text font
  92. };
  93.  
  94. #endif
  95.